﻿Public Class ConnectionInfo

    Private Name As String
    Private Host As String
    Private Port As Integer
    Private Path As String
    Private Username As String
    Private Password As String
    Private AuthRequired As Boolean
    Private TransferMode As SFDL.FTP.FTP.TransferMode
    Private TransferType As SFDL.FTP.FTP.TransferType
    Private CharacterEncoding As Enums.CharacterEncoding
    Private SecurityProtocol As SFDL.FTP.FTP.FtpSecurityProtocol
    Private UseSpecialCharacterFix As Boolean
    ''' <summary>
    ''' Benutzerdefinierter Name der Verbindung
    ''' </summary>
    Public Property GetSetName As String
        Set(value As String)
            Name = value
        End Set
        Get
            Return Name
        End Get
    End Property
    ''' <summary>
    ''' Host/IP-Addresse des FTP-Servers
    ''' </summary>
    Public Property GetSetHost As String
        Set(value As String)
            Host = value
        End Set
        Get
            Return Host
        End Get
    End Property
    ''' <summary>
    ''' Port des FTP-Servers
    ''' </summary>
    Public Property GetSetPort As Integer
        Set(value As Integer)
            Port = value
        End Set
        Get
            Return Port
        End Get
    End Property
    ''' <summary>
    ''' Pfad zu dem gewechselt wird sobald die FTP-Verbindung erfolgreich hergestellt wurde
    ''' </summary>
    Public Property GetSetPath As String
        Set(value As String)
            Path = value
        End Set
        Get
            Return Path
        End Get
    End Property
    ''' <summary>
    ''' Benutzername zum herstellen der FTP-Verbindung
    ''' </summary>
    Public Property GetSetUsername As String
        Set(value As String)
            Username = value
        End Set
        Get
            Return Username
        End Get
    End Property
    ''' <summary>
    ''' Passwort zum herstellen der FTP-Verbindung
    ''' </summary>
    Public Property GetSetPassword As String
        Set(value As String)
            Password = value
        End Set
        Get
            Return Password
        End Get
    End Property
    ''' <summary>
    ''' Gibt an ob eine Anmeldung benötigt wird.
    ''' </summary>
    Public Property GetSetAuthRequired As Boolean
        Set(value As Boolean)
            AuthRequired = value
        End Set
        Get
            Return AuthRequired
        End Get
    End Property
    ''' <summary>
    ''' Gibt an ob welcher TransferModus benutzt wird. (Active or Passive)
    ''' </summary>
    Public Property GetSetTransferMode As SFDL.FTP.FTP.TransferMode
        Set(value As SFDL.FTP.FTP.TransferMode)
            TransferMode = value
        End Set
        Get
            Return TransferMode
        End Get
    End Property
    ''' <summary>
    ''' Gibt an ob welcher TransferType benutzt wird. (Binary or ASCII)
    ''' </summary>
    Public Property GetSetTransferType As SFDL.FTP.FTP.TransferType
        Set(value As SFDL.FTP.FTP.TransferType)
            TransferType = value
        End Set
        Get
            Return TransferType
        End Get
    End Property
    ''' <summary>
    ''' Gibt an das Encoding an.
    ''' </summary>
    Public Property GetSetCharacterEncoding As Enums.CharacterEncoding
        Set(value As Enums.CharacterEncoding)
            CharacterEncoding = value
        End Set
        Get
            Return CharacterEncoding
        End Get
    End Property
    ''' <summary>
    ''' Gibt an ob und welche Verschlüsselung benutzt wird.
    ''' </summary>
    ''' <remarks>Nicht Implementiert!</remarks>
    Public Property GetSetSecurityProtocol As SFDL.FTP.FTP.FtpSecurityProtocol
        Set(value As SFDL.FTP.FTP.FtpSecurityProtocol)
            SecurityProtocol = value
        End Set
        Get
            Return SecurityProtocol
        End Get
    End Property
    ''' <summary>
    ''' Gibt an ob SpecialCharacterFix genutzt werden soll.
    ''' </summary>
    Public Property GetSetUseSpecialCharacterFix As Boolean
        Set(value As Boolean)
            UseSpecialCharacterFix = value
        End Set
        Get
            Return UseSpecialCharacterFix
        End Get
    End Property

End Class
